Malik, who debuted for Pakistan in 1998 in an ODI against West Indies in Sharjah, announced his decision during a press conference in Lahore on Monday.
However, the 36-year-old will continue to play the T20 format, subject to his fitness and performances.
“The 2019 World Cup is my last event of the 50-over cricket and I will try to keep playing T20s if I maintain fitness and form until 2020,” Malik said.
Malik is part of Pakistan’s team which is going to tour Zimbabwe for a tri-nation T20 series (against the hosts and Australia) and a five-match ODI series against Zimbabwe.
Malik, who captained Pakistan for a year from 2007, has played 261 ODIs for Pakistan. He has scored 6975 runs at an average of 35.22, hitting nine 100s and 41 fifties, and taking 154 wickets at 38.65 in the process.