Нет,
groupName2 = malloc(strlen(groupName + 2) + 2);
18 Июл 2006 - 15:39 Unknown BIOS
Нет,
groupName2 = malloc(strlen(groupName + 2) + 2);
неверно! При groupName состоящей из 1 символа strlen() вернет неизвестно что.
Вообще правильно вот так:
groupName2 = malloc(strlen(groupName) + 1);
так как там в комментарии подписано:
groupName2[0] = 1; // This is because the DB requires the groupname to begin with the second character in the string
groupName2[1] = 0;
т.е. DB требует, чтобы groupname начинался со второго символа, поэтому они в первый пихают 1, затем сразу 0, т.е. длину строки делают = 1. А затем вызывают strcat() - которая объединяет 2 строки:
strcat(groupName2, groupName);
т.е. в строку groupName2 добавляют содержимое строки groupName, таким образом длина строки groupName2 должна быть на 1 больше чем groupName, т.к. в начале записана 1.
Нет,
неверно! При groupName состоящей из 1 символа strlen() вернет неизвестно что.
Вообще правильно вот так:
так как там в комментарии подписано:
т.е. DB требует, чтобы groupname начинался со второго символа, поэтому они в первый пихают 1, затем сразу 0, т.е. длину строки делают = 1. А затем вызывают strcat() - которая объединяет 2 строки:
т.е. в строку groupName2 добавляют содержимое строки groupName, таким образом длина строки groupName2 должна быть на 1 больше чем groupName, т.к. в начале записана 1.