考虑给定的2d数组分配:
int (*some)[10] = malloc(sizeof(int[10][10]));
Run Code Online (Sandbox Code Playgroud)
这将分配一个10 x 10 2d阵列.显然它的类型是int (*)[10].我想编写一个函数initialize()来分配它,初始化它然后返回一个指向数组的指针,这样构造some[i][j]就可以在其他函数中使用,这些函数可以将指针传递到彼此的数组.
原型应该是什么,特别是返回类型initialize()?
我正在使用 DOS 虚拟机绕过段错误,但 Turbo-C 不想编译此代码:
#include <stdio.h>
int main() {
FILE *fp = fopen("somefile.txt", "w");
if(fp == NULL) {
fprintf(stderr, "NaF");
return -1;
}
char /*1*/ *ch = NULL;
while(ch /*2*/ < (char *) 209* /*3*/1024) {
fprintf(fp, "& - %p, * - %c\n", ch, *ch/*4*/);
ch++;
}
fclose(fp);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
错误列表:
我认为这一定是某种古老的 C,因为我确信这段代码可以在现代编译器上编译。我知道它会产生段错误,因此我在 DOS 环境中编写。