【发布时间】:2022-01-01 18:06:06
【问题描述】:
我正在学习 C,而 C 是我的第一门编程语言。我先添加代码。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int main() {
int row = 3, col = 2;
int(*ptr)[2] = (int(*)[2])malloc(sizeof(int) * row * col);
if (!ptr) exit(1);
printf("%d", sizeof(*ptr[0]));
return 0;
}
4
也许,ptr[0] 是指针或数组。我应该将ptr[0] 视为一个数组吗?
【问题讨论】:
-
在 C 中,
int(*ptr)[2] = (int(*)[2])malloc(sizeof(int) * row * col);最好是int(*ptr)[2] = malloc(sizeof *ptr * row);和printf("%d", sizeof(*ptr[0]));是printf("%zu", sizeof *ptr[0]);。
标签: c