Сделал "c" массивом в 2 символа и теперь всё заработало:
c[1] не инициализирован, то что там оказался 0 -- чистая случайность.getchar возвращает int а не char, и значение EOF может не помещаться в char. char c;
…
strcat(word, &c);
} else {
char c1[2] = {c, 0};
strcat(word, c1);
} Можно пожалуйста поподробнее про окружение?
каким образом я могу найти взаимосвязь окружения и моей текущей проблемой
самостоятельные выделения памяти, которые вынужден делать из-за отсутствия этой фичи требует самостоятельного контроля
alloca.т.е. фича полезная и избавляет от необходимости лишний раз стрелять себе в ногу
IStream* pStream;
HRESULT hr = NOERROR;
// Open a blocking type stream to the Web site.
hr = URLOpenBlockingStream (NULL, strURL, &pStream, 0, NULL);
if (hr != S_OK) {
// error
} else {
do {
char szBuffer[256];
DWORD dwGot;
hr = pStream->Read (szBuffer, sizeof (szBuffer), &dwGot);
cache += std::string(szBuffer, dwGot);
} while (SUCCEEDED (hr) && hr != S_FALSE);
pStream->Release();
}IStream::Stat для получения размера данных и чтения всех данных за один вызов IStream::Read, но мне негде это проверить. git merge --strategy=ours отменит только те изменения, которые конфликтуют с нашими, а не все. Так что это не то. ours c опцией разрешения конфликтов ours стратегии recursive.
Dyikot, полный код