【发布时间】:2017-03-17 09:58:24
【问题描述】:
如何为二维数组中的每个元素动态分配内存? 例如,我有一个由街道名称(1.column)和街道号码(2.column)组成的地址,例如圣保罗 87/45。我需要为他们动态分配内存。
int main()
{
int c = 1, r = 1; //c-column, r-row
char st_name[] = "St.Paul";
char st_number[] = "87/45";
char *arr = (char *)malloc(c*r*sizeof(char));
c = 0;
r = 0;
*arr[r][c++] = (char *)malloc((strlen(st_name)) * sizeof(char));
*arr[r][c] = (char *)malloc((strlen(st_number)) * sizeof(char));
return 0;
}
当然不行。
谢谢。
【问题讨论】:
-
这在直接的方法中是行不通的,你至少需要一个指向数组的指针。
-
Souraw Ghosh 还向他展示了为什么要强制转换 malloc 的返回值。
-
stackoverflow.com/a/14879184/3716664 不能说 75 票反对。 @KeineLust
-
@KeineLust 我只看到 208 个赞,没有别的。
标签: c arrays malloc dynamic-memory-allocation