"memory access violation" 或"segmentation violation"这种信息通常意味着有指针变量包含了伪地址。一个通常的原因是初始化变量失败。
free(P)的结果是:P正在指向的地址没变,但在该地址处的数据此时已无定义了。
偶尔会出现当你的程序使用大量空间时,系统可能不能满足你对新单元的要求。此时返回的是NULL指针。
警告:malloc(sizeof(PtrToNode))是合法的,但是它并不给结构体分配足够的空间。它只给指针分配一个空间。
大小为N的数组A,其主要元素是一个出现次数超过N/2的元素(从而这样的元素最多有一个)。
程序1:求数组的主要元素
#include<stdio.h> #define SIZE 100 int main() { int array[SIZE],i,n,num[10]={0}; printf("please input the array size :"); scanf("%d",&n); printf("please input the array[%d] :\n",n); for(i=0;i<n;++i) { scanf("%d",&array[i]); num[array[i]]++; } for(i=0;i<n;i++) { if(num[i]>(n/2)) { printf("The mainelement is : %d\n",i); return 0; } } printf("There is no mainelement!\n"); return 0; }