คำถามติดแท็ก memset

9
ทำไมต้องใช้ bzero มากกว่า memset?
ในคลาสการเขียนโปรแกรมระบบที่ฉันเอาภาคการศึกษาก่อนหน้านี้เราต้องใช้ไคลเอนต์ / เซิร์ฟเวอร์ขั้นพื้นฐานในซีเมื่อเริ่มต้น structs เช่นsock_addr_inหรือบัฟเฟอร์บัฟเฟอร์ (ที่เราใช้ในการส่งข้อมูลไปมาระหว่างไคลเอนต์และเซิร์ฟเวอร์) อาจารย์ สั่งให้เราใช้เท่านั้นbzeroและไม่memsetเริ่มต้นพวกเขา เขาไม่เคยอธิบายว่าทำไมและฉันอยากรู้ว่ามีเหตุผลที่ถูกต้องสำหรับสิ่งนี้หรือไม่? ฉันดูที่นี่: http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdownที่bzeroมีประสิทธิภาพมากขึ้นเนื่องจากความจริงที่ว่าจะเป็นศูนย์ความจำเท่านั้นดังนั้นมันจึงไม่ ต้องทำการตรวจสอบเพิ่มเติมใด ๆ ที่memsetอาจทำ ที่ยังคงไม่จำเป็นต้องดูเหมือนเหตุผลที่จะไม่ใช้อย่างแน่นอนmemsetสำหรับหน่วยความจำ zeroing bzeroถือว่าเลิกใช้แล้วและไม่ใช่ฟังก์ชัน C มาตรฐาน ตามคู่มือmemsetเป็นที่ต้องการมากกว่าbzeroด้วยเหตุผลนี้ ดังนั้นทำไมคุณยังต้องการใช้bzeroมากกว่าmemset? เพื่อประสิทธิภาพที่เพิ่มขึ้นหรือเป็นอะไรที่มากกว่านี้หรือ ในทำนองเดียวกันสิ่งที่มีประโยชน์memsetมากกว่าbzeroที่ทำให้มันเป็นตัวเลือกที่ต้องการโดยพฤตินัยสำหรับโปรแกรมที่ใหม่กว่า?

7
รีเซ็ต C int array เป็นศูนย์: วิธีที่เร็วที่สุด?
สมมติว่าเรามีT myarray[100]T = int, int ที่ไม่ได้ลงนาม, int ยาวหรือ int ยาวที่ไม่ได้ลงนามวิธีใดคือวิธีที่เร็วที่สุดในการรีเซ็ตเนื้อหาทั้งหมดเป็นศูนย์ (ไม่เพียง แต่สำหรับการเริ่มต้น แต่เพื่อรีเซ็ตเนื้อหาหลาย ๆ ครั้งในโปรแกรมของฉัน) เหรอ? อาจจะมี memset? คำถามเดียวกันสำหรับอาร์เรย์แบบไดนามิกเช่นT *myarray = new T[100].
102 c++  c  arrays  memset 

12
วิธีที่เร็วที่สุดในการทำให้อาร์เรย์ 2d ใน C เป็นศูนย์
ฉันต้องการศูนย์อาร์เรย์ 2d ขนาดใหญ่ซ้ำ ๆ ใน C นี่คือสิ่งที่ฉันทำในขณะนี้: // Array of size n * m, where n may not equal m for(j = 0; j < n; j++) { for(i = 0; i < m; i++) { array[i][j] = 0; } } ฉันได้ลองใช้ memset แล้ว: memset(array, 0, sizeof(array)) แต่ใช้ได้กับอาร์เรย์ 1D เท่านั้น …

4
การใช้ memset () return value คืออะไร?
memset()จะถูกประกาศให้ส่งคืนvoid*ซึ่งเป็นค่าเดียวกับที่อยู่ที่ส่งผ่านไปยังฟังก์ชันเสมอ การใช้คืนมูลค่าคืออะไร? ทำไมมันไม่กลับมาvoid?
90 c++  c  memset 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.