【发布时间】:2011-10-10 03:42:01
【问题描述】:
我在这样的结构中有一个数组:
typedef struct mystruct{
const char *myarr[30];
} mystruct;
我需要稍后在程序中将此数组增加到 60 个元素,方法是创建一个新数组、复制内容,然后将 myarr 更改为指向新数组。
我尝试了以下方法:
const char newtable[n];
s->*myarr = newtable;
但是 gcc 抱怨:
error: incompatible types in assignment
关于完成此任务的正确方法有什么想法吗?
【问题讨论】:
-
你不能从 60 的数组大小开始吗?
-
不,30 和 60 只是简单的示例。实际上,该程序就像一个哈希表。
-
有点不清楚您要做什么: const char* arr[30] 是一个 30 char* 的数组,但是您尝试将其更改为指向 n char 的数组。
-
你有
->*符号 - 但这是一个 C++ 运算符,而不是 C 运算符。错字? -
啊,那我用错了运算符。我正在尝试拥有一个包含 30 个元素的字符串数组,然后稍后将其更改为更大。