-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],即分配给数组中类型的第三个数组TableRow条目SortTableRows

或者应该SortTableRowsPtr是一个包含 20 个指针的数组TableRow

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

下面的呢?在哪里将 tableRow 分配给 SortTableRows 数组中的第三行。

#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 回答