Pointers 返回的指针是c中的垃圾值 #包括 #包括 char*findNumber(int arr_size,int*arr,int k); char*findNumber(int arr\u size,int*arr,int k){ char*result=malloc(sizeof(char)*4); int i; int标志=1; 对于(i=0;i<p>),首先,为了执行你所描述的,将指针传递给你希望修改的变量(C++中,你将通过引用)。 #include <stdio.h> #include <stdlib.h> char* findNumber(int arr_size, int* arr, int k); char* findNumber(int arr_size, int* arr, int k) { char *result =malloc(sizeof(char)*4); int i; int flag = 1; for ( i = 0;i<arr_size;i++){ if (*(arr+i)==k){ flag = 0; break; } } else if (flag = 0){ *(result) = "YES"; } return result; } int main() { int arr [3]= {1,2,3}; int size = 3; int k = 3; char * a; a = findNumber(size,arr,k); printf(" %s",a); return 0 ; }

Pointers 返回的指针是c中的垃圾值 #包括 #包括 char*findNumber(int arr_size,int*arr,int k); char*findNumber(int arr\u size,int*arr,int k){ char*result=malloc(sizeof(char)*4); int i; int标志=1; 对于(i=0;i<p>),首先,为了执行你所描述的,将指针传递给你希望修改的变量(C++中,你将通过引用)。 #include <stdio.h> #include <stdlib.h> char* findNumber(int arr_size, int* arr, int k); char* findNumber(int arr_size, int* arr, int k) { char *result =malloc(sizeof(char)*4); int i; int flag = 1; for ( i = 0;i<arr_size;i++){ if (*(arr+i)==k){ flag = 0; break; } } else if (flag = 0){ *(result) = "YES"; } return result; } int main() { int arr [3]= {1,2,3}; int size = 3; int k = 3; char * a; a = findNumber(size,arr,k); printf(" %s",a); return 0 ; },pointers,memory,allocation,Pointers,Memory,Allocation,第二,这条线是错误的: void findNumber(int arr_size, int* arr, int k, char* result) { // do something that modifies result } 此条件将始终返回true,并且else放错了位置。您没有收到任何语法错误吗? 检查循环附近的括号 If的作用域在for循环内,else If的作用域在for循环外。 jst确实返回“yes”;否则返回“no”if条件中有一个错误,我没有使用strcpy()谢谢大家请

第二,这条线是错误的:

void findNumber(int arr_size, int* arr, int k, char* result) {

// do something that modifies result

}

此条件将始终返回
true
,并且
else
放错了位置。

您没有收到任何语法错误吗? 检查循环附近的括号 If的作用域在for循环内,else If的作用域在for循环外。
jst确实返回“yes”;否则返回“no”

if条件中有一个错误,我没有使用strcpy()谢谢大家

请编辑以确保可读性。点字、大写字母和一些换行符。代码中有缩进。好的,什么不明显?如果我找到唯一的数字,则标志将为0。我不能这样做,因为我只得到了这些变量。我不能在函数中包含另一个变量欢迎使用堆栈溢出。请请参阅回答窗口右上角的“帮助”以了解如何格式化代码。您不应该使用
strcpy
,因为它不安全。那么我应该使用什么?如果源缓冲区大于目标缓冲区,则有比
strcpy
更安全的替代方法。
strcpy
可能导致缓冲区溢出。
strncpy
是轻微的更安全。
else if (flag = 0){