1. 程式人生 > >面試中遇到的問題:一個指標重複釋放會出現什麼情況

面試中遇到的問題:一個指標重複釋放會出現什麼情況

一個指標重複釋放會出現什麼情況?

我當時的回答是:1.空指標可以重複釋放

2.非空指標(可能大概)會報錯。

由於好幾天沒有寫程式碼,對指標有些生疏了,所以對非空指標的情況不太確定 。

所以剛才編寫了一個小程式碼進行了測試:

#include <stdio.h>
int main()
{
	int *p = (int*)malloc(sizeof(int)* 5);
	free(p);
	//p = NULL;
	free(p);
	return 0;
}
當把p=NULL註釋掉時,程式編譯通過,但執行時報錯。

不註釋p=NULL時,程式編譯執行都通過。

相關推薦

面試遇到的問題一個指標重複釋放出現什麼情況

一個指標重複釋放會出現什麼情況? 我當時的回答是:1.空指標可以重複釋放 2.非空指標(可能大概)會報錯。 由於好幾天沒有寫程式碼,對指標有些生疏了,所以對非空指標的情況不太確定 。 所以剛才編寫了一個小程式碼進行了測試:#include <stdio.h> i

深拷貝拯救指標重複釋放(淺拷貝)造成的記憶體洩漏

1. 淺拷貝以及記憶體洩漏的背景 先考慮一種情況,對一個已知物件進行拷貝,編譯系統會自動呼叫一種建構函式——拷貝建構函式,如果使用者未定義拷貝建構函式,則會呼叫預設拷貝建構函式。 #include <iostream> #include "student.h"

C語言動態分配陣列指標釋放問題

我們都知道要實現根據程式的需要動態分配儲存空間,在C中需要使用到stdlib.h中的兩個函式,malloc,free,兩個函式的介紹如下: malloc函式的原型為: void *malloc (u igned int size) 其作用是在記憶體的動態儲存區中分配一個長

客戶端提交資料給伺服器端,如果資料帶有中文的話,有可能出現亂碼情況

request: 如果是GET方式 程式碼轉碼 String username = request.getParameter("username"); String password = request.getParameter("password"); String use

如果類a繼承類b,實現介面c,而類b和介面c定義了同名變數,請問出現什麼問題?(瞬聯)

如果類a繼承類b,實現介面c,而類b和介面c中定義了同名變數,請問會出現什麼問題?(瞬聯)interface      A{       int x = 0;}class B{       int x =1;}class C extends B implements A{  

C#關於從剪貼簿讀取HTML格式含中文字元出現的問題和解決方法

通過如下程式碼在剪貼簿中獲取含HTML格式的文字時發現當內容出現漢字的時候會有亂碼 if (Clipboard.ContainsText(TextDataFormat.Html)) textBox1.T

面試官問一個你工作有價值的bug

表面看這是一個非常簡單的一個問題,做測試辣麼久,發現的bug無數,隨便從中挑選一個比較“特別”的一個bug說說就可以了啊! 但其實,越是從習以為常的事情中找“特別”越困難,比如,我每天中午都是樓下隨便找一家快餐店吃飯,如果有人問我:說說你印象深刻的一次吃快餐的經歷。除非我哪天吃出了蒼蠅,否則怎麼

Android面試一個常見問題Layout_weight的用法

這個屬性可能對於初學者來說比較頭疼,也是一道比較經典的Android面試題,這不,最近在公司面了好幾個來面試Android工作的人,發現好幾個面試者做的卷子裡有道關於layout_weight的問題,感覺答得不是很好,遂想寫個部落格(其實是想要記錄下這有意思的事

前端演算法給定一個字串,找到它的第一個非重複字元並返回它的索引

給定一個字串,找到它中的第一個非重複字元並返回它的索引。如果它不存在,則返回-1。 例子: s =‘leetcode’ 返回0。 s =‘loveleetcode’ 返回2。 注意:您可以假設該字串僅包含小寫字母。 <script> var

C語言利用指標編寫程式,定義一個3行3列的二維陣列,並在程式對其進行賦值,陣列元素的型別不限,輸出該二維陣列以及各行的均值

題目來源:大工慕課 連結 作者:Caleb Sung 題目要求 利用指標編寫程式,定義一個3行3列的二維陣列,並在程式中對其進行賦值,陣列元素的型別不限,輸出該二維陣列以及各行的均值,各行

Web前端面試指導(十七)一個滿屏 品 字布局 如何設計?

web前端題目點評這道題目有可能是筆試題,有可能面談的時候進行敘述,如果是筆試題要求對css樣式代碼非常熟練,如果是面談敘述,就需要你的表達能力非常強,要抓住要點,把需要用到的技能點講清楚就可以了。需要用到技術1. 元素水平居中對齊1) 使用margin對齊(推薦)2) 使

C#一個簡單的小程序(圓形周長,面積計算器)

編碼 雙精度 崩潰 輸入 面向對象 窗口 語句 readline 面向對象的語言 作為一個面向對象的語言,與用戶的交互很關鍵! 在此,我們可以先分析一下我們這個小程序要與用戶交互的內容:1.命名很重要,讓用戶看見這個程序就知道這個程序的作用。 2.當用戶打開這個程序時,提示

free一個在 Linux 檢查內存使用情況的標準命令

合作夥伴 sre 最新 shm cached spa 交換 比較 廣泛 摘要: 我們都知道, IT 基礎設施方面的大多數服務器(包括世界頂級的超級計算機)都運行在 Linux 平臺上,因為和其他操作系統相比, Linux 更加靈活。有的操作系統對於一些微乎其微的改動和補丁更

SpringCloud的ConfigConfigServer註冊到EurekaServer,變成一個Eureka服務

config 技術 .cn 驗證 服務 客戶 conf eureka ase 一、概念與定義 1、將SpringCloud ConfigServer註冊到 EurekaServer,以便ConfigClient以服務的方式引用ConfigServer 2、客戶端不再引用 C

由散列表到BitMap的概念與應用(三)面試的海量資料處理

一道面試題 在面試軟體開發工程師時,經常會遇到海量資料排序和去重的面試題,特別是大資料崗位。 例1:給定a、b兩個檔案,各存放50億個url,每個url各佔64位元組,記憶體限制是4G,找出a、b檔案共同的url? 首先我們最常想到的方法是讀取檔案a,建立雜湊表,然後再讀取檔案b,遍歷檔

編寫一個方法,計算一個字串,第一個不重複的字元在當前字串的索引。即是這個字串唯一一個存在的字元第一個出現的位置

1.編寫一個方法,計算一個字串中,第一個不重複的字元在當前字串中的索引。即是這個字串唯一一個存在的字元第一個出現的位置 比如saaaaafss 輸出f saaaaaf 輸出 s public class S1 { public static void main(String args

兩個陣列的位數以及一個字串最長的不重複的子串

題目:兩個陣列的中位數 指先找到兩個有序陣列的中位數,然後求兩個中位數的平均值 程式碼如下: # _*_ coding: utf-8 _*_ # 題目:求兩個排序陣列的中位數的平均數 class Solution: def __init__(self, nums1, nu

一道能做出來就腳踢BAT的高難度演算法題在元素重複三次的陣列查詢重複一次的元素

我們看一道難度很高的查詢類演算法題,如果你真能在一小時內給出正確的演算法和編碼,那麼你隨便在BAT開口年薪一百萬都不算過分。我們先看題目:給定一個數組,它裡面除了一個元素外,其他元素都重複了三次,要求在空間複雜度為O(1),時間複雜度為O(n)的約束下,查詢到只重複了一次的元素。 在

究極難題 一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒怎麼實現呼叫不卡住該執行緒?

究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒? Note:一旦呼叫函式,中途無法取消。 思路一:讓其執行在獨立執行緒內。加超時時間。 1. 在超時時間內函式有返回值,則函式執行結束。則獨立執行緒結束。 2. 在超時時

關於比較器,我們知道我們java陣列可以使用一個方法Array.sort(array);來進行排序

關於比較器,我們知道我們java陣列中可以使用一個方法:Array.sort(array);來進行排序,如果我們陣列中是放的基本資料型別,就可以直接比較大小排序,如果我們放的是物件的話,這樣排序就意義不大,需要我們自己進行相應的修改,得到我們想要的比較結果。 比如我們有三個學生,學生屬性有id,