gpt4 book ai didi

在函数c中更改数组

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

我在 C 中做了一些关于指针的练习,因为我对它们有一些问题。我必须使用 void 函数更改数组中的一些值,但是当我运行代码时它会返回一个段错误。这是代码:

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

void change( int **v , int l ) {

for ( int i = 0 ; i < l ; i++ )
*v[i] = 0 ;

}

int main ( int argc , char** argv ) {

int *v , l ;
scanf("%d",&l) ;
v = (int*) malloc(sizeof(int)*l) ;

for ( int i = 0 ; i < l ; i++ )
scanf("%d",&v[i]) ;

change( &v , l ) ;

for ( int i = 0 ; i < l ; i++ )
printf("%d ",v[i]) ;

return 0 ;
}

最佳答案

改变:

void change( int **v , int l )

void change( int *v , int l )

然后

*v[i] = 0 ;

 v[i] = 0 ;

然后

change( &v , l ) ;

change( v , l ) ;

您不需要使用指向 int 的指针来更改数组元素,只需传递指向数组第一个元素的指针即可。

关于在函数c中更改数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20596077/

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