以下无法编译:
typedef int arr[10];
int main(void) {
return sizeof arr;
}
sizeof.c:3: error: expected expression before ‘arr’
Run Code Online (Sandbox Code Playgroud)
但如果我改成它
sizeof(arr);
Run Code Online (Sandbox Code Playgroud)
一切都好.为什么?
我正在阅读Beej\xe2\x80\x99s 网络编程指南,在第 45 页上编写了以下代码;
\n\nstruct pollfd *pfds = malloc(sizeof *pfds * fd_size);\nRun Code Online (Sandbox Code Playgroud)\n\n我想知道是否应该
\n\nstruct pollfd *pfds = malloc(sizeof(struct pollfd) * fd_size);\nRun Code Online (Sandbox Code Playgroud)\n\n由于malloc返回一个指向指定大小的内存块的指针。
\n\n由于 *pfds 是一个指针,它的大小将为 4 或 8 字节,所以我无法理解为什么在创建数组时要考虑它的大小。
\n