我如何使用指向该数组的指针来设置该数组。
int *A, n;
printf("\n Enter the size of array : ");
scanf("%d",&n);
A = (int*) malloc(sizeof(*A) * n);
int i = 0;
memset(*A,5,n * sizeof(*A));
for(i = 0; i < n; i++)
printf("%d ", A[i]);
编译器无缘无故发出警告:
warning: passing argument 1 of 'memset' makes pointer from integer without a cast expected 'void *' but argument is of type 'int'
这意味着您在传递integer时没有将正确的类型传递给memset()
的第一个参数,该参数的确需要pointer。
您的指针A
仍然可以,不需要引用它并且*A
是错误的,正确的调用是:
memset(A, 5, n * sizeof(*A));
也,don't cast the return value of malloc()
:
malloc()