【发布时间】:2012-04-29 03:50:33
【问题描述】:
我有一个二维指针数组(指向字符串)
char *result[7000][14];
我想写一个函数,返回每个“行”中的第一个字符串。
这是我尝试过的:
char *getRownames (int a, int b, char *matrix[a][b])
{
char *rownames[a];
for(int i=0;i<a;i++){
rownames[i] = malloc(strlen(matrix[i][0])+1);
strcpy(rownames[i],matrix[i][0]);
}
return *rownames;
}
然后
char *names = getRownames(7000, 14, result);
我收到一条错误消息,指出 getRowNames 的类型冲突。仍然习惯于 C 并且不得不分配我自己的内存。
【问题讨论】:
-
rownames 是指向指针的指针,所以 char **names = getRownames(7000,14,result);可能工作
-
还需要修复返回语句和函数签名
-
不应该是
rownames[i] = malloc...吗?
标签: c multidimensional-array strcpy slice