文字列の 2 次元配列に値を代入する際に問題が発生しています。コードは次のとおりです。
  Char array[]= "Nary had a little lamb";
  int chunkSize = 4;
  char inventory[totalRuns][chunkSize];
  subString(result, array,0,0+chunkSize);
  printf("CHUNK 1 = %s\n",result);          //Prints "Nary"
  strncpy(inventory[0],result,chunkSize);
  memset(result, '\0', strlen(result));
  subString(result, array,pos,pos+chunkSize);
  printf("CHUNK 2 = %s\n",result);          // Prints " had"
  strncpy(inventory[1],result,chunkSize);
そして関数部分文字列:
char *subString(char* putHere, char* request,int start,int end){
    char* loc = request+start;
    char* end_loc = request+end;
    memcpy(putHere, loc, end_loc-loc);
    return putHere; 
}
このコードを実行すると、出力は
CHUNK 1 = ナリ
チャンク 2 = 持っていた
これは正しいですが、在庫を印刷すると、
inventory[0]=Nary had       //Should be just "Nary"
inventory[1]= had           //correct
ここで私が間違っていることはありますか?