gpt4 book ai didi

c - 将矩阵每一行的指针发送给函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:19 24 4
gpt4 key购买 nike

我正在学习 C 中的内存分配。我想使用 malloc 创建一个 [10][20] 的矩阵,以便将每一行发送到一个函数进行处理。只发送每一行的指针就够了吗?即 *arr[0];

以下是我的代码块:

#include <stdio.h>
#include <stdlib.h>

int **arr; // Buffer

int sumElements(int *arr[]){
// do something
}


void main(){
int i,j;
arr = malloc(10 * sizeof(int *)); // Allocate # of rows for the matrix

for(i = 0; i < 10; i++){
arr[j]= malloc(20 * sizeof(int)); // Allocate # of entries in each row
sumElements(*arr[j]); // send the current row to be processed by function
}

}

最佳答案

当前行不是*arr[j],而是arr[j]。前者是int类型,后者是int *类型。因此 sumElements 应该传递 int []int *,而不是 int *[]

所以函数定义应该是:

int sumElements(int arr[])

你应该这样调用它:

sumElements(arr[j]);

关于c - 将矩阵每一行的指针发送给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com