小编Ser*_*yan的帖子

返回一个动态分配的数组?(C)

考虑给定的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()

c arrays pointers dynamic-memory-allocation

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

函数 main (Turbo-C) 中的表达式语法

我正在使用 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)

错误列表:

  1. 函数 main 中的表达式语法
  2. 函数 main 中未定义符号“ch”
  3. 在函数 main 中非法使用指针
  4. 函数 main 中的无效间接

我认为这一定是某种古老的 C,因为我确信这段代码可以在现代编译器上编译。我知道它会产生段错误,因此我在 DOS 环境中编写。

c dos turbo-c

0
推荐指数
1
解决办法
539
查看次数

标签 统计

c ×2

arrays ×1

dos ×1

dynamic-memory-allocation ×1

pointers ×1

turbo-c ×1