相关疑难解决方法(0)

为什么(以及何时)我需要在sizeof之后使用括号?

以下无法编译:

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)

一切都好.为什么?

c sizeof

74
推荐指数
2
解决办法
1万
查看次数

malloc 应该指定指针大小还是内存大小?

我正在阅读Beej\xe2\x80\x99s 网络编程指南,在第 45 页上编写了以下代码;

\n\n
struct pollfd *pfds = malloc(sizeof *pfds * fd_size);\n
Run Code Online (Sandbox Code Playgroud)\n\n

我想知道是否应该

\n\n
struct pollfd *pfds = malloc(sizeof(struct pollfd) * fd_size);\n
Run Code Online (Sandbox Code Playgroud)\n\n

由于malloc返回一个指向指定大小的内存块的指针。

\n\n

由于 *pfds 是一个指针,它的大小将为 4 或 8 字节,所以我无法理解为什么在创建数组时要考虑它的大小。

\n

c linux networking

5
推荐指数
1
解决办法
138
查看次数

标签 统计

c ×2

linux ×1

networking ×1

sizeof ×1