我正在尝试为我的编程课从 Linux 重新创建 head 和 tail 命令。
我们刚刚开始使用 C,所以我对分配内存和指针的想法很陌生。
我想知道为什么这不起作用。
#include <stdio.h>
#include <stdlib.h>
int main(int argc,char **argv){
/* Checks if correct amount of arguements */
if(argc != 2 || argc != 4){
printf("Usage: %s head <file> \n Or: head <file> -n <number of characters>", argv[0]);
exit(-1);
}
if(strcmp(argv[1], "-n" != 0)){
char fileName[strlen(argv[1])] = argv[1];
}
}
//Compile error on char fileName[strlen(argv[1])] = argv[1];
任何额外的见解也会有所帮助。
我觉得这样写比较好:
char fileName[strlen(argv[1])+1];
strcpy(fileName, argv[1]);
或(如果您不想复制字符串):
char* fileName = argv[1];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)