2010-08-27 13 views
1

我是C編程的新用戶。我試過在線研究,但找不到答案...如何訪問C中數組的一部分?例如,如何解決(1-D)數組的一部分?

int Data[4] 
int Input[32] 

什麼做的語法:[12:15]這樣

Data[0] = Input[12] 
Data[1] = Input[13] 
Data[2] = Input[14] 
Data[3] = Input[15] 

在現實中,我嘗試使用TCP套接字來填充數組的一部分的數據輸入= :

recv(MySocket, YRaw[indx:indx+1024], sizeChunk, 0) 

我希望接收的數據從數組索引'indx'到'indx + 1024'放置在YRaw數組中。

由於提前,GKK

回答

1

用於複印一個數組的東西到另一個,你可以使用memcpy

#include "string.h" 

memcpy(&input[12], &data[0], 4*sizeof(int)); /* source, destination, number of bytes to copy */ 

在recv的情況下,你做的同樣的事情 - 你通過指針開始和字節數:

recv(sock, &YRaw[indx], sizeChunk*sizeof(int), 0); /* sizeChunk is hopefully 1024 */ 

編輯:我忘了第二個例子的sizeof,所以我添加了它。

+0

完美!謝謝!!! – ggkmath 2010-08-27 22:39:50

+0

好吧,現在它更有意義,感謝馬蒂! – ggkmath 2010-08-27 23:03:37

0

可以使用memcpy

0

你可以使用指針的算術:

recv(MySocket, YRaw + indx, sizeof(int) * 1024, 0); 

在這種情況下,將RECV放置第一INT在YRaw [INDX],第二個在YRaw [INDX + 1],等等。

在這個例子中,我假設你想從套接字讀取整數。

此外,不要忘記檢查返回值。

+0

會做,謝謝! – ggkmath 2010-08-27 23:03:14

相關問題