为什么这个C代码给我一个seg错误?

时间:2009-10-02 11:18:39

标签: c string char

  

可能重复:
  How to copy char *str to char c[] in C?

char *token = "some random string";
char c[80];  
strncpy(c, token, sizeof c - 1); 
c[79] = '\0';
char *broken = strtok(c, "#");

2 个答案:

答案 0 :(得分:1)

以下代码中的代码不会崩溃:

#include <string.h>

main()
{
char *token = "some random string";
char c[80];  
strcpy( c, token);
strncpy(c, token, sizeof c - 1); 
c[79] = '\0';
char *broken = strtok(c, "#");
}

答案 1 :(得分:0)

此代码有效,您是否指定了正确的包含?

#include <string.h> /*
#include <stdio.h>
#include <stdlib.h>

int
main() {
  /* ORIGINAL CODE */
  char *token = "some random string";
  char c[80];  
  strcpy( c, token);
  strncpy(c, token, sizeof c - 1); 
  c[79] = '\0';
  char *broken = strtok(c, "#");

  /* ADDED THE FOLLOWING LINES */
  printf("%s\n", broken);
  exit(1);
}
相关问题