爲了獲得以空字符結尾的字符串的長度,我們只需編寫len = strlen(str)
然而,我經常在SO帖子中看到這樣的內容,例如要獲得int
數組的大小,您需要請自行跟蹤它,這就是我通常所做的。但是,我有一個問題,我們是否可以通過使用某種write permission check
來獲取大小,以檢查是否有權限寫入一塊內存?例如:通過寫入權限檢查獲得數組的大小
#include <stdio.h>
int getSize(int *arr);
bool permissionTo(int *ptr);
int main(void)
{
int arr[3] = {1,2,3};
int size = getSize(arr) * sizeof(int);
}
int getSize(int *arr)
{
int *ptr = arr;
int size = 0;
while(permissionTo(ptr))
{
size++;
ptr++;
}
return size;
}
bool permissionTo(int *ptr)
{
/*............*/
}
此外,您可能有權寫入超出數組的數據:'int data [8]; int you_have_write_permission_to_this_too;' –
不是4吉比嗎? – Kotshi