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;
	
	
}

 

posted on 2013-05-09 14:11  flash610  阅读(152)  评论(0编辑  收藏  举报