c变量内存分配
几天在写程序时定义了一个指针数组,在对他进行那个操作时,总是出错,估计是内存分配出了问题,于是就翻书,结果令我大吃一惊:教材上关于内存方面的问题几乎没有。
以下程序用vc6.0编译能通过,但是执行使出问题了,改用注释部分则对了。
#include <stdio.h>
#include <string>
void main(void)
{
int i, j;
int count;
char *p[] = {"Java","Basic","Delphi","List"};
count = sizeof(p)/sizeof(p[0]);
int k;
// char *m;
char a[20];
for (i = 0; i < count; i++){
printf("%s ", p[i]);
}
printf ("\ncount = %d\n",count);
for (j = 0; j < count; j++){
k = j;
for (i = j; i < count; i++){
if (strcmp(p[k], p[i]) > 0){
k = i;
}
}
// m = p[k];
// p[k] = p[j];
// p[j] = m;
strcpy(a, p[k]);
strcpy(p[k], p[j]);
strcpy(p[j], a);
}
for (i = 0; i < count; i++){
printf ("%s ",p[i]);
}
printf ("\n");
// return 0;
}
浙公网安备 33010602011771号