以下是一个简单的C语言程序,实现了将给定的二维数组按列的顺序存放到一维数组中的功能: ```c #include int main() { // 定义并初始化二维数组 int twoDArray[3][4] = { {11, 22, 33, 44}, {11, 22, 33, 44}, {11, 22, 33, 44} }; // 定义一维数组的大小(二维数组的列数 * 二维数组的行数) int oneDArraySize = sizeof(twoDArray) / sizeof(twoDArray[0]); int *oneDArray = (int *)malloc(oneDArraySize * sizeof(int) * 3); // 分配足够的内存空间 // 检查内存是否成功分配 if (oneDArray == NULL) { printf("Memory allocation failed.\n"); return 1; } // 遍历二维数组,按列的顺序存放到一维数组中 for (int col = 0; col < 4; col++) { // 遍历每一列 for (int row = 0; row < 3; row++) { // 遍历每一行的当前列 oneDArray[col * 3 + row] = twoDArray[row][col]; } } // 输出一维数组的内容 printf("The content of the one-dimensional array is: "); for (int i = 0; i < oneDArraySize * 3; i++) { printf("%d ", oneDArray[i]); } printf("\n"); // 释放动态分配的内存 free(oneDArray); return 0; } ``` 在这段代码中,我们首先定义了一个二维数组`twoDArray`并初始化了它的内容。然后我们计算一维数组的大小,并使用`malloc`动态分配了一维数组`oneDArray`的内存空间。接着我们遍历二维数组的每一列,再遍历每一行在当前列的元素,将这些元素按列的顺序存储到一维数组中。最后我们输出一维数组的内容,并在程序结束前释放了分配的内存。 请注意,在实际使用中,应该对`malloc`调用的结果进行检查,以确保内存分配成功。如果`malloc`失败并返回`NULL`,则不应尝试访问`oneDArray`,而应直接返回错误代码。此外,在结束程序之前,使用`free`释放了`oneDArray`占用的内存,以防止内存泄漏。

点赞(0)
×
关注公众号,登录后继续创作
或点击进入高级版AI
扫码关注后未收到验证码,回复【登录】二字获取验证码
发表
评论
返回
顶部