【发布时间】:2023-01-13 03:04:44
【问题描述】:
我有这样的代码:
typedef struct dArrString
{
char** arr;
int locLength;
int length;
} dArrString;
#define D_ARR_STRING(NAME, ARR_STRING)\
NAME.arr = (char**) malloc(0 * sizeof(char*))\
NAME.locLength = 2;\
NAME.length = 0;\
printf("%s", ARR_STRING[0]);
int main()
{
dArrString stos;
char emptyStr = {'\0'};
D_ARR_STRING(;stos, emptyStr);
return 0;
}
问题在ARR_STRING[0]在 D_ARR_STRING 宏中,因为在编译这段代码后我得到了这样的错误:
错误:下标值既不是数组也不是指针也不是向量 printf("%s", ARR_STRING[0]);
我该如何解决这个问题或者我应该改成什么?
【问题讨论】:
-
D_ARR_STRING(;stos, emptyStr);中的第一个分号应该达到什么目的? -
我不知道
malloc(0)是做什么的,但它不会给你任何记忆。 -
char emptyStr = {'\0'};没有声明数组,只是一个字符。
标签: c