X और y के कौन से मान कुछ C संकलक के साथ दुर्घटना का कारण बनेंगे?
int f(int x, int y) {
return (y==0) ? 0 : (x/y);
}
X और y के कौन से मान कुछ C संकलक के साथ दुर्घटना का कारण बनेंगे?
int f(int x, int y) {
return (y==0) ? 0 : (x/y);
}
जवाबों:
-2147483648 (INT_MIN) और -1
#include <stdio.h>
#include <limits.h>
int f(int x, int y) {
return (y==0) ? 0 : (x/y);
}
int main() {
int r = f(INT_MIN, -1);
printf("%d\n", r);
return 0;
}
$ gcc -Wall Division.c &&/a.out # => zsh: फ़्लोटिंग पॉइंट अपवाद ।/a.out
सही उत्तर पहले से ही दिया गया है, लेकिन मैंने तुरंत Microsoft Pex के बारे में सोचा ।
Pex स्वचालित रूप से उच्च कोड कवरेज के साथ टेस्ट सूट बनाता है। विज़ुअल स्टूडियो कोड संपादक से राइट, Pex को आपके तरीकों के दिलचस्प इनपुट-आउटपुट मान मिलते हैं, जिन्हें आप एक छोटे टेस्ट सूट के रूप में अन्य कोड कवरेज के साथ बचा सकते हैं। Microsoft Pex .NET फ्रेमवर्क अनुप्रयोगों के परीक्षण के लिए एक विजुअल स्टूडियो ऐड-इन है
सैंडबॉक्स साइट में अपनी पहेली को जोड़ने के बाद , यह कुछ ही सेकंड में जवाब पाता है, वही eregons उत्तर। (pex से पूछें क्लिक करें)
नोट: यह इसे C # में करता है, लेकिन भाषा वास्तव में प्रासंगिक नहीं है।
(x/y)और जानते हैं कि INT_MIN, आदि -1, 0उस अभिव्यक्ति के लिए सभी समस्या के मामले हैं, और मूल्यांकन के समय उन मूल्यों का उत्पादन करने के लिए एक तरह से इंजीनियर को उलटने की कोशिश करते हैं।