首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

UNIX环境高级编程第四章的一个程序例子里面的指针存储字符串有关问题

2012-06-08 
UNIX环境高级编程第四章的一个程序例子里面的指针存储字符串问题#include apue.hintmain(int argc, char

UNIX环境高级编程第四章的一个程序例子里面的指针存储字符串问题
#include "apue.h"

int
main(int argc, char *argv[])
{

  int i;
  struct stat buf;
  char *ptr;

  for (i = 1; i < argc; i++) {
  printf("%s: ", argv[i]);
  if (lstat(argv[i], &buf) < 0) {
  err_ret("lstat error");
  continue;

  }
  if (S_ISREG(buf.st_mode))
  ptr = "regular";
  else if (S_ISDIR(buf.st_mode))
  ptr = "directory";
  else if (S_ISCHR(buf.st_mode))
  ptr = "character special";
  else if (S_ISBLK(buf.st_mode))
  ptr = "block special";
  else if (S_ISFIFO(buf.st_mode))
  ptr = "fifo";
  else if (S_ISLNK(buf.st_mode))
  ptr = "symbolic link";
  else if (S_ISSOCK(buf.st_mode))
  ptr = "socket";
  else
  ptr = "** unknown mode **";
  printf("%s\n", ptr);
  }
  exit(0);
}
这里的指针ptr没有用malloc等函数来分配内存,怎么就能够赋值字符串呢?

[解决办法]
这个不是向指针指向的空间存储,而是让指针指向一个常量字符串

热点排行