迭代2D数组(int **)会导致C中的分段错误

时间:2019-02-20 01:12:41

标签: c arrays segmentation-fault

def display_function (result): ## get's json.dumps(data) to use and display to html in this function
    print(result) # This will show you what the function is receiving!
    output = "some html goes here:" + result 
    return output

在这段代码中,我试图将2D数组传递给另一个函数,并让第二个函数打印出所有值。我选择在函数的签名中将数组指定为#include <stdio.h> void func(int **arr, int s) { for (int i = 0; i < s; i++) { for (int j = 0; j < s; j++) { printf("%d\n", arr[i][j]); } } printf("\n"); } int main() { int arr[3][3] = { {11, 12, 13}, {21, 22, 23}, {31, 32, 33}, }; func((int**)arr, 3); } (宽松地放在second method specified in this example之后)。

当我运行这段代码时,我希望它能够打印出所有项目,但是它会断断续续,我不确定为什么。我已经尝试调试它,但是gdb将我指向int **函数中printf的数组访问,但是我已经怀疑这是原因。我认为内存的外观与我试图访问的方式以及实际访问方式(或访问方式)之间显然存在差异。

0 个答案:

没有答案