снабжать струной, тетивой и т.п. Я эти переменные установлены в моем отладчика:Невозможно скопировать
значения // Отладчик не код
RELATIVE_PATH = "./bin/Debug"
STRLEN (RELATIVE_PATH) = 11
RELATIVE_PATH [11] = 0 '\ 000' // Как показано в Eclipse, отладчик
в моем коде я тогда делать:
//**My Code**
struct dirs_later {
const char *findme;
struct dirent *dptr;
struct stat this_lstat;
char *relative_path;
const char *type_str;
DIR * dir;
};
....
struct dirs_later *new_dir = malloc(sizeof(struct dirs_later*));
...
char *relative_path2 = strdup(relative_path);
if (NULL != new_dir) {
new_dir->findme = findme;
new_dir->dptr = dptr;
new_dir->this_lstat = *this_lstat;
new_dir->relative_path = relative_path2;
new_dir->type_str = type_str;
}
, но затем отладчик показывает после new_dir-> relative_path = relative_path2. Затем в отладчике:
значения // Отладчик не код
relative_path2 = "& \ 275 \ 001" и
StrLen (relative_path2) = 3
Я также попытался это в моем коде вместо:
//**My Code**
char *relative_path2 = malloc(strlen(relative_path) + 1 * sizeof(char));
//check for NULL
strcpy(relative_path2, relative_path);
и я получаю тот же результат
Не уверен, что вы пытаетесь сделать с 'relative_path [11] = \ 0' .. строка будет завершена уже, и я считаю, что это повлияет на байты * после * существующего нулевого терминатора. –
'sizeof (char)' равно 1. Зачем писать? –
Если 'strlen (str) == 10', то' str [10] 'должно быть NULL, а не' str [11] '. –