-2

テーブルを作成しようとしていますが、テーブルのエントリは構造型です。「タイプ 'TableRow' からタイプ 'SortTableRows' に割り当てるときに互換性のないタイプです」というエラーが表示されます。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct TableRow
{
    int  startingValue;
    int entries[100];
}TableRow;

typedef TableRow SortTableRows[20]; //Table Containing entries of type TableRow

SortTableRows* SortTableRowsPtr;

int main()
{

    TableRow *tableRow;
    tableRow = malloc(sizeof(TableRow));
    tableRow = NULL;
    SortTableRowsPtr[2]=*tableRow; //Error
    return 0;
}
4

2 に答える 2

3

を使用する、つまり、配列内(*SortTableRowsPtr)[2]の型の 3 番目の配列エントリに代入するつもりだと思います。TableRowSortTableRows

またはSortTableRowsPtr、への20個のポインターの配列にする必要がありますTableRowか?

typedef TableRow (*SortTableRows)[20];
于 2013-03-06T18:15:29.760 に答える
0

以下はいかがでしょうか?SortTableRows 配列の 3 行目に tableRow を割り当てます。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

typedef struct TableRow
{
    int  startingValue;
    int entries[100];
}TableRow_t;

int main()
{

    TableRow_t SortTableRows[20];
    TableRow_t *tableRow = NULL;

    /* Put some data into the 3rd row */
    SortTableRows[2].startingValue = 2;
    for (i = 0; i < 100; ++i) {
            SortTableRows[2].entries[i] = i;
    }

    tableRow = &(SortTableRows[2]);

    printf("%d: %d, %d, %d\n", 
                    tableRow->startingValue,
                    tableRow->entries[0],
                    tableRow->entries[1],
                    tableRow->entries[2]);

    return 0;
}
于 2013-03-06T18:31:45.200 に答える