親愛的朋友, 我是新來的,請檢查我的一段代碼。我的意圖是將名稱複製到結構數組元素中。我是c新手,無法理解發生了什麼......請引導我?試圖使用自己的strcpy並複製一個數組元素不工作?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct new_st{
const char name[100];
int value;
}var1;
char *myStringcopy(char *dst, const char *src)
{
char *ptr;
ptr = dst;
while(*dst++!=NULL)
{
*dst++=*src++;
}
return(ptr);
}
int main()
{
char my_str[] = {"HelloWord", "MY var1", "my var2"};
var1 *new_st1;
new_st1 = malloc(sizeof(struct new_st));
//trying just first name then i thought of using for loop for rest
myStringcopy(my_str, new_st1->name[0]);
printf("%s\n",new_st1->name[0]);
return 0;
}
編譯警告,然後修復它們。 – netcoder 2013-03-01 03:54:29
你的函數是'char * myStringcopy(char * dst,const char * src)',但你把它叫做'myStringcopy(my_str,new_st1-> name [0])''。源和目標參數相反。 – 2013-03-01 03:57:00
只是爲了澄清:顛倒的參數不是唯一的問題。正如netcoder所說,這些問題將由編譯器警告揭示。 – 2013-03-01 04:07:43