Правильный способ выделить пространство для строки и затем вставить символы в это пространство?

У меня две строки, str1 и str2. Я хочу объединить их в пространство в куче. Я выделяю для них пространство, используя:

char *concat = (char*) malloc(strlen(str1) + strlen(str2) + 1);

Могу я просто сделать:

strcat(concat, str1);
strcat(concat, str2);

И concat предоставит мне место в куче с двумя сцепленными строками? Я спрашиваю, потому что кажется, что strcat действительно добавит str1 в конец пространства, выделенного с помощью malloc. Это правильно? Таким образом, str1 появится в позиции strlen (str1) + strlen (str2) + 1.

Я спрашиваю, потому что я использую описанный выше метод, Мы заметили, что в таком файле есть ссылка на локальный путь установки в MSBuildExtensionsPath , и учитывая, что вместо того, чтобы сохранять зависимости кода как можно более чистыми, я готов нести накладные расходы на их распространение / управление версиями с каждым проектом, Мне было интересно, можно ли как-то переопределить местоположение по умолчанию / установку с помощью относительного к проекту в файле .cproj ?

Фактический макет будет примерно таким:

Dotnet.Samples.Foobar
\src
     Foobar.cs
\lib
     MSBuild.Community.Tasks.targets
     MSBuild.Community.Tasks.dll

Любое руководство будет будут искренне признательны. Большое спасибо за любые предложения, которыми вы, возможно, захотите поделиться.

6
задан Nano Taboada 11 April 2011 в 01:03
поделиться